﻿#include"head.h"

void WrapCodeLinkFunc(ptask regood)
{
	ptask good =regood;
	while(1)
	{
		char commoditycode[COMMODITYCODESIZE];
		bzero(commoditycode,COMMODITYCODESIZE);

		puts("请选择需要购买[or 取消购买]的商品编号\t返回请输入ESC  ...");
		scanf("%s",commoditycode);
		if(strncmp(commoditycode,"ESC",3) == 0||strncmp(commoditycode,"esc",3) == 0)
		{
			puts("正在为您办理...\n");
			usleep(1000);
			break;
		}
		else{
			//存放编码的单链表
			CreatSingleLink(good,commoditycode);
		}	
	}
		/*打印编码链表*/
		//PrintSignalList(good);
		printf("如果商品充裕/存在，则已为您办理成功\n");
	
}
void FuncGroup(ptask regood)
{
	int button=0;
	int ret;
	
	ptask good = regood;
	
	while(1)
	{
		
		puts("\n\n====== 👯 🙎 Welcome to Embadded SuperMarket======");
		puts("请选择您的操作\n[1]登记购买\t[2]已购商品\t[3]取消购买\t[4]计算总价");
		puts("[5]系统设置\t[6]帮助\t\t[7]退出😂");
		printf("->");
		ret = scanf("%d",&button);
		if(button>=1&&button<=7)
		{
			
			switch(button)
			{
				case 1:
					/*2.1查看仓库商品菜单*/
						PrintStoreAllInfo(good);//打印仓库中的所有信息
					/*2.2选择要购买的商品id，放入编码列表*/
						CreatSingleLinkInit(good);
						WrapCodeLinkFunc(good);
					/*2.3根据编码链表，将商品添加到购物车，在仓库中查找，有重复时，返回false*/
						GoodEnterUp(good);	
				break;
				case 2:PrintPurchaseGoodInfo(good);	
				break;
				case 3:
					/*3.1查看购物车单*/
						PrintPurchaseGoodInfo(good);
					/*3.2选择要取消购买的商品id，放入编码列表*/
						CreatSingleLinkInit(good);
						WrapCodeLinkFunc(good);
					/*3.3从双向链表（购物车）中移除*/	
						GoodCancel(good);
				break;
				case 4:
					/*4.1查看购物车单*/
						PrintPurchaseGoodInfo(good);
					/*4.2计算购物车商品总价格*/
						CountPrine(good);
				break;
				case 5:printf("待完善...");
				break;
				case 6:HelpDocument();
				break;
				case 7:puts("成功退出 ...");exit(0);
				break;
				default :
				printf("sorry!\n");
			}
			
		}else{
			puts("ilegal enter! Please reenter ...\n");
			
			
		}
		//清除输入缓冲区中的错误数据
		while(getchar()!='\n');
	}	
}